package com.secxiot.provider.narcotic.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.secxiot.provider.narcotic.vo.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.ToString;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;
import java.util.List;

/**
 * 药品记录信息
 */
@ApiModel
@Data
@ToString
public class NarcoticPatientDrugsRecordDto {

    @ApiModelProperty(value = "药品记录Id", required = true)
    private Long patientDrugsRecordId;

    @ApiModelProperty(value = "用户id", required = true)
    private Long userId;

    @ApiModelProperty(value = "用户名称", required = true)
    private String userName;

    @ApiModelProperty(value = "用户手机号", required = true)
    private String mobile;

    @ApiModelProperty(value = "用户头像", required = false)
    private String headerImg;

    @ApiModelProperty(value = "医疗机构Id", required = true)
    private Long hospitalId;

    @ApiModelProperty(value = "医疗机构名称", required = true)
    private String hospitalName;

    @ApiModelProperty(value = "药品Id", required = true)
    private Long drugsId;

    @ApiModelProperty(value = "药品名称", required = true)
    private String drugsName;

    @ApiModelProperty(value = "服用方式", required = true)
    private String means;

    @ApiModelProperty(value = "间隔时间", required = true)
    private Integer hoursOnce;

    @ApiModelProperty(value = "规格", required = true)
    private Integer spec;
    @ApiModelProperty(value = "规格名称", required = true)
    private String specName;

    @ApiModelProperty(value = "创建时间", required = true)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    @ApiModelProperty(value = "审核状态 0 未审核 1 医生审核  2 药师审核   3 取药 4 销毁(完成)  5 拒绝", required = true)
    private String status;

    @ApiModelProperty(value = "资料Id", required = true)
    private Long patientInfoId;

    @ApiModelProperty(value = "资料信息", required = true)
    private NarcoticPatientInfoVo patientInfoVo;

    @ApiModelProperty(value = "带领人信息", required = true)
    private NarcoticAgentInfoVo agentInfoVo;

    @ApiModelProperty(value = "医生信息", required = false)
    private List<NarcoticDoctorRecordVo> doctorRecordVos;

    @ApiModelProperty(value = "药师信息", required = false)
    private List<NarcoticChemistRecordVo> chemistRecordVos;

    @ApiModelProperty(value = "取药销毁信息", required = false)
    private NarcoticTakeDestroyVo takeDestroyVo;
}
